Un albero (Tree) รจ una struttura dati gerarchica non lineare, che modella organizzazioni del mondo reale (come un file system o un albero genealogico). A differenza dell'ordinamento lineare di liste, stack e code, l'essenza degli alberi risiede nella loronatura gerarchica (Hierarchical)enatura ricorsiva (Recursive).
1. Analizzare la struttura dell'albero
- nodo (Node): unitร base che contiene una chiave (Key) e un payload.
- nodo radice (Root): l'unico nodo senza archi entranti, punto di partenza dell'albero.
- arco (Edge): l'unica via che collega i nodi, rappresentante il rapporto tra genitore e figlio.
- nodo foglia (Leaf): nodo finale senza figli, confine naturale per la terminazione ricorsiva.
2. Doppio punto di vista della definizione ricorsiva
Possiamo comprendere gli alberi da due punti di vista:
Punto di vista grafico
Un grafo connesso e aciclico formato da nodi e archi, in cui ogni nodo (tranne la radice) ha esattamente un padre.
Un grafo connesso e aciclico formato da nodi e archi, in cui ogni nodo (tranne la radice) ha esattamente un padre.
Punto di vista ricorsivo
Un albero รจ vuoto oppure composto da un nodo radice e da zero o piรน sottoalberi (Subtree).
Un albero รจ vuoto oppure composto da un nodo radice e da zero o piรน sottoalberi (Subtree).
Esempio di albero DOM in HTML
In HTML,
<html> รจ la radice,<body> e <head> sono nodi fratelli. Ogni tag e il suo contenuto annidato formano insieme un sottoalbero. Questa struttura permette di spostare l'intero <ul> e tutti i suoi <li> senza rompere la sua gerarchia interna.